package com.example.mapper;

import com.example.entity.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 用户Mapper接口
 * 定义对用户表的操作
 */
public interface UserMapper {
    /**
     * 根据ID查询用户
     * @param id 用户ID
     * @return 用户对象
     */
    User selectUserById(Integer id);

    //查询所有用户
    List<User> selectAllUsers();

    //插入用户
    int insertUser(User user);

    //更新用户信息
    int updateUser(User user);

    //根据ID删除用户
    int deleteUserById(Integer id);

    //根据姓名模糊查询用户
    List<User> selectUsersByName(String name);

    //统计用户数量
    int countUsers();

    //根据邮箱查询用户
    List<User> selectUserEmail(String email);

    //根据姓名和年龄查询用户
    List<User> selectUsersByNameAndAge(@Param("name") String name, @Param("age") Integer age);

    //使用Map传递参数查询用户
    List<User> selectUsersByMap(Map<String, Object> params);

    //分页查询用户
    List<User> selectUsersByPage(@Param("offset") int offset, @Param("limit") int limit);
}